/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Codigo;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 *
 * @author kyerte
 */
public class ConsultaClientesXProducto {

    private Connection conexion = null;
    private PreparedStatement insertar = null;
    private PreparedStatement actualizar = null;
    private PreparedStatement eliminar = null;
    private PreparedStatement obtenerIdCliente = null;

    ConsultaClientesXProducto() {

        try {

            conexion = FrmPrincipal.conexion;
            insertar = conexion.prepareStatement("INSERT INTO "
                    + "ClientesXProducto(idCliente, idProducto, Fecha, Observaciones,"
                    + " Venta) VALUES(?,?,?,?,?)");
            actualizar = conexion.prepareStatement("UPDATE ClientesXProducto "
                    + "SET idCliente=?, idProducto=?, Fecha=?, Observaciones=?,"
                    + " Venta=? WHERE idClientesXProducto=?");
            eliminar = conexion.prepareStatement("DELETE FROM ClientesXProducto WHERE "
                    + "idClientesXProducto=?");
            obtenerIdCliente = conexion.prepareStatement("SELECT idCliente FROM "
                    + "Clientes WHERE Nombre=?");

        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }
    }

    public int insertarVisita(int idCliente, int idProducto, java.sql.Date fecha,
            String observaciones, boolean venta) {

        int resultado = 0;

        try {

            insertar.setInt(1, idCliente);
            insertar.setInt(2, idProducto);
            insertar.setDate(3, fecha);
            insertar.setString(4, observaciones);
            insertar.setBoolean(5, venta);

            resultado = insertar.executeUpdate();
        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }

        return resultado;
    }

    public int actualizarVisita(int idCliente, int idProducto, java.sql.Date fecha,
            String observaciones, boolean venta, int idClienteXProducto) {

        int resultado = 0;

        try {

            actualizar.setInt(1, idCliente);
            actualizar.setInt(2, idProducto);
            actualizar.setDate(3, fecha);
            actualizar.setString(4, observaciones);
            actualizar.setBoolean(5, venta);
            actualizar.setInt(6, idClienteXProducto);

            resultado = actualizar.executeUpdate();
        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }

        return resultado;
    }

    public int eliminarVisita(int id) {
        int resultado = 0;

        try {

            eliminar.setInt(1, id);
            resultado = eliminar.executeUpdate();

        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }
        return resultado;
    }

    public int obtenerIdCliente(String nombre) {

        int idCliente = 0;
        ResultSet conjuntoResultados = null;

        try {

            obtenerIdCliente.setString(1, nombre);
            conjuntoResultados = obtenerIdCliente.executeQuery();

            while (conjuntoResultados.next()) {
                idCliente = conjuntoResultados.getInt("idCliente");
            }

        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }

        return idCliente;
    }

    private void close() {
        try {
            conexion.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
}
